ВВЕРХ

SQL Joins

YouLibreCalc for Excel logo

SQL JOIN

Выражение JOIN используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.


Посмотрим на выборку из таблицы "Orders" ("Заказ"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

Затем просмотрите выборку из таблицы "Customers" ("Клиенты"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

Обратите внимание, что столбец "CustomerID" в таблице "Orders" относится к "CustomerID" в таблице "Customers". Связь между двумя таблицами выше – столбец "CustomerID".

Тогда мы можем создать следующую SQL-инструкцию (содержащую INNER JOIN), которая выбирает записи, имеющие соответствующие значения в обеих таблицах:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

и это даст нечто подобное:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

Различные типы SQL JOIN

Вот разные типы JOIN в SQL:

  • (INNER) JOIN: Возвращает записи, имеющие соответствующие значения в обеих таблицах
  • LEFT (OUTER) JOIN: Возвращает все записи из левой таблицы и соответствующие записи из правой таблицы
  • RIGHT (OUTER) JOIN: Возвращает все записи из правой таблицы и соответствующие записи из левой таблицы
  • FULL (OUTER) JOIN: Возвращает все записи, если есть соответствие в левой или правой таблице


  • SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN